---
title: clsLetterRequestCollection
summary: Loads one or many letter requests from the Legal API and prepares them for printing.
status: draft
owner: SAIF Case Management team
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# clsLetterRequestCollection

`clsLetterRequestCollection` retrieves `LetterRequest` records from the Legal API, materializes them as `clsLetterRequest` business objects, and runs each item's post-fill enrichment so downstream print logic receives template-ready request data. It can fetch the full request list, one request by sequence number, or assemble a collection from an explicit list of request IDs.

## Purpose

- Retrieve letter-request DTOs from the `integration/LetterRequests` API route and expose them as managed business objects.
- Run `clsLetterRequest.Load` and `PostFill` for each item so worker, attorney, policy, and print fields are available immediately after retrieval.
- Provide collection-style lookup, membership, removal, save, and factory helpers for legal-letter printing workflows.

## Context
- Namespace: `SAIF.Business.Claim.Legal`
- Assembly/package: `SAIF.Business.Claim.Legal`

## Public members

| Member | Kind | Type/return type | Purpose |
| --- | --- | --- | --- |
| Item(index) | Default read-only property | `clsLetterRequest` | Returns the request at the specified collection position. |
| Item(inLetterRequestSeqNum) | Default read-only property | `clsLetterRequest` | Returns the first loaded request whose `LetterRequestSeqNum` matches the supplied key. |
| CurrentItem | Read-only property | `clsLetterRequest` | Returns the current item tracked by the base collection cursor. |
| BeforeRetrieve(inPortalRequest) | Protected override method | `Sub` | Chooses between retrieving all letter requests or one request by sequence number before the framework materializes the collection. |
| AfterRetrieve(inPortalRequest) | Protected override method | `IBusinessObject` | Wraps each retrieved DTO in `clsLetterRequest`, loads it into the collection, and runs `PostFill` on every item before returning the collection. |
| Save() | Override method | `Boolean` | Applies pending edits and then persists the collection through the base save lifecycle. |
| Add(inclsLetterRequest) | Method | `Integer` | Adds a `clsLetterRequest` instance to the active collection list. |
| Contains(inclsLetterRequest) | Method | `Boolean` | Checks whether the active collection already contains the supplied letter-request object. |
| Contains(inLetterRequestSeqNum) | Method | `Boolean` | Checks whether the active collection contains a request matching the supplied sequence number. |
| ContainsDeleted(inclsLetterRequest) | Method | `Boolean` | Checks whether the deleted-item list contains the supplied letter-request object. |
| ContainsDeleted(inLetterRequestSeqNum) | Method | `Boolean` | Checks whether the deleted-item list contains a request matching the supplied sequence number. |
| Remove(inclsLetterRequest) | Method | `Sub` | Removes the supplied letter-request object from the active collection list. |
| Remove(inLetterRequestSeqNum) | Method | `Sub` | Removes the first active item whose `LetterRequestSeqNum` matches the supplied key. |
| New() | Protected constructor | `—` | Initializes a managed collection that allows editing, removal, sorting, and find operations. |
| GetLetterRequestCollection(inDataportal) | Shared method | `clsLetterRequestCollection` | Retrieves the full collection of letter requests through the data portal. |
| GetLetterRequestCollection(inDataportal, inLetterRequestSeq) | Shared method | `clsLetterRequestCollection` | Retrieves a collection constrained to one letter-request sequence number. |
| GetLetterRequestCollection(inDataportal, inLetterRequestSeqNums) | Shared method | `clsLetterRequestCollection` | Builds a collection from an explicit list of request IDs by retrieving each requested sequence number individually and appending the first returned item. |

## Sources

- `SAIF.Business.Claim.Legal\Print\clsLetterRequestCollection.vb`
